package code.whmmm.util.spring.quartz;

import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.PersistJobDataAfterExecution;

/**
 * quartz 定时任务 对象，通过 {@link PersZeroQuartzSchedule#startJob(QuartzJob)} 启动
 * <p><b>
 * 需要自行添加 依赖 <br/>
 * quartz 版本:  2.3.1 ! 注意版本号
 * </b></p>
 * <br/>
 * <p>
 * <p>
 * 需要自行添加 依赖 <br/>
 * <pre>
 * &lt;dependency&gt;
 *     &lt;groupId&gt;org.quartz-scheduler&lt;/groupId&gt;
 *     &lt;artifactId&gt;quartz&lt;/artifactId&gt;
 *     &lt;version&gt;2.3.1&lt;/version&gt;
 * &lt;/dependency&gt;
 * </pre>
 * <p>
 * 创建时间: 8/14/2019 1:12 PM
 *
 * @author Zero
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
public interface QuartzJob extends Job {

    /**
     * 返回 cron 表达式
     *
     * @return cron expression
     */
    String cron();

    /**
     * true 启用，false 禁用
     *
     * @return true 启用，false 禁用
     */
    boolean isEnable();


}
